const path = require('path')
const webpack = require('webpack')
const htmlWebpackPlugin = require('html-webpack-plugin')
const VueLoaderPlugin = require('vue-loader/lib/plugin')
module.exports = {
    entry: path.join(__dirname, './src/main.js'),
    output: {
        path: path.join(__dirname, './dist'),
        filename: "bundle.js"
    },
    devServer: {
        open: "chrome",
        port: 3000,
        hot: true,
        // host: '192.168.43.79'
    },
    plugins: [
        new webpack.HashedModuleIdsPlugin(),
        new htmlWebpackPlugin({
            template: path.join(__dirname, './src/index.html'),
            filename: "index.html"
        }),
        new VueLoaderPlugin()
    ],
    resolve: {
        alias: {
            "vue$": "vue/dist/vue.js"

        }
    },
    module: {
        rules: [
            {
                test: /\.vue$/,
                use: 'vue-loader'
            },
            {//配置css
                test: /\.css$/,
                use: ['style-loader', 'css-loader']

            },
            {//配置less
                test: /\.less$/,
                use: ['style-loader', 'css-loader', 'less-loader']
            },
            {//配置scss
                test: /\.scss/,
                use: ['style-loader', 'css-loader', 'sass-loader']

            },
            {
                test: /\.(png|jpe?g|gif)$/,
                use: {
                    loader: 'url-loader',//处理图片路径的loader
                    options: {
                        //limit 给定的值，是图片的大小，单位是byte,如果我们引用的图片，大于或等于给定的limit值，则不会
                        // 被转为base64格式的字符串，如果 图片小于给定的limit值，则会被转为base64格式的字符串
                        //limit目的：让大图保真，让小图压缩。
                        //(两张同名图片哪个，limit值要小于图片大小)
                        limit: 106116, // 8k以下的base64内联，不产生图片文件
                        fallback: 'file-loader', // 8k以上，用file-loader抽离（非必须，默认就是file-loader）
                        //[name]代表之前是什么名就还是什么名，.[ext]后缀名不变
                        name: '[name].[ext]?[hash]', // 文件名规则，默认是[hash].[ext]
                        outputPath: 'images/', // 输出路径
                        publicPath: ''  // 可访问到图片的引用路径(相对/绝对)
                    }
                }
            },
            {
                test: /\.(ttf|eot|svg|woff|woff2)$/,
                use: 'url-loader'
            },//处理字体文件的loader处理
            {
                test: /\.js$/,
                use: 'babel-loader',
                exclude: /node_modules/
            }//排除node_modules
        ]
    },
}